mm: Scrub memory from idle loop
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Wed, 16 Aug 2017 18:30:00 +0000 (20:30 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 22 Aug 2017 08:35:58 +0000 (10:35 +0200)
commit55066985050f5366ed800dcd5ee9308d6ff943b1
treeef79b1f04710022c16251527989aecc8546d0c6f
parent9053a74c08fd6abf43bb45ff932b4386de7e8510
mm: Scrub memory from idle loop

Instead of scrubbing pages during guest destruction (from
free_heap_pages()) do this opportunistically, from the idle loop.

We might come to scrub_free_pages()from idle loop while another CPU
uses mapcache override, resulting in a fault while trying to do
__map_domain_page() in scrub_one_page(). To avoid this, make mapcache
vcpu override a per-cpu variable.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Dario Faggioli <dario.faggioli@citrix.com>
Acked-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/domain.c
xen/arch/x86/domain.c
xen/arch/x86/domain_page.c
xen/common/page_alloc.c
xen/include/xen/mm.h